home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
17 Bit Software 6: Level 6
/
17 Bit - Level 6 (1998)(Epic Marketing)[!].iso
/
quartz
/
q0429.dms
/
q0429.adf
/
raypaint
/
main.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-08-08
|
3KB
|
131 lines
/*
* main.c
*
* Copyright (C) 1989, 1991, Craig E. Kolb
* All rights reserved.
*
* This software may be freely copied, modified, and redistributed
* provided that this copyright notice is preserved on all copies.
*
* You may not distribute this software, in whole or in part, as part of
* any commercial product without the express consent of the authors.
*
* There is no warranty or other guarantee of fitness of this software
* for any purpose. It is provided solely "as is".
*
* $Id: main.c,v 4.0 91/07/17 17:36:46 kolb Exp Locker: kolb $
*
* $Log: main.c,v $
* Revision 4.0 91/07/17 17:36:46 kolb
* Initial version.
*
*
*/
char rcsid[] = "$Id: main.c,v 4.0 91/07/17 17:36:46 kolb Exp Locker: kolb $";
#include "rayshade.h"
#include "options.h"
#include "stats.h"
#include "viewing.h"
#include "picture.h"
void RSInitialize(), RSStartFrame();
int
main(argc, argv)
int argc;
char **argv;
{
Float utime, stime;
/*
* Initialize variables, etc.
*/
RSInitialize(argc, argv);
RSStartFrame(Options.startframe);
/*
* Print more information than we'll ever need to know...
*/
if (Options.verbose) {
extern Geom *World;
/* World object info. */
AggregatePrintInfo(World, Stats.fstats);
/* Print info about rendering options and the like. */
RSOptionsList();
}
/*
* Print preprocessing time.
*/
RSGetCpuTime(&utime, &stime);
fprintf(Stats.fstats,"Preprocessing time:\t");
fprintf(Stats.fstats,"%2.2fu %2.2fs\n", utime, stime);
fprintf(Stats.fstats,"Starting trace.\n");
(void)fflush(Stats.fstats);
/*
* Render the image.
*/
Render(argc, argv);
StatsPrint();
return 0;
}
static void
RSStartFrame(frame)
int frame;
{
/*
* Set the frame start time
*/
Options.framenum = frame;
Options.framestart = Options.starttime +
Options.framenum*Options.framelength;
SamplingSetTime(Options.framestart, Options.shutterspeed,
Options.framenum);
/*
* Set up viewing parameters.
*/
RSViewing();
/*
* Initialize world
*/
WorldSetup();
}
/*
* Initialize non-time-varying goodies.
*/
static void
RSInitialize(argc, argv)
int argc;
char **argv;
{
/*
* Initialize variables, etc.
*/
RSSetup();
/*
* Parse options from command line.
*/
RSOptionsSet(argc, argv);
/*
* Process input file.
*/
if (Options.verbose) {
VersionPrint();
fprintf(Stats.fstats,"Reading input file...\n");
(void)fflush(Stats.fstats);
}
RSReadInputFile();
/*
* Set variables that weren't set on command line
* or in input file.
*/
RSCleanup();
/*
* Set sampling options.
*/
SamplingSetOptions(Options.samples, Options.gaussian,
Options.filterwidth);
}